--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
android/app/src/main/java/com/meshchatx/MeshchatDownloadUtils.java be21d7830fc5d8adb4362db8ebbfa4c0d2dde0ae (be21d783) Text, 931 B
Tff7b72package T7ee787com.meshchatxTb4b4b4;
Tff7b72final Tff7b72class T56d364MeshchatDownloadUtils Tb4b4b4{
Tff7b72private Td2a8ffMeshchatDownloadUtilsTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
T8b949e/**
* Produces a filename safe for writing into app storage / MediaStore.
*/
Tff7b72static Te6edf3String Td2a8ffsanitizeFileNameTb4b4b4(Te6edf3String Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3name Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3nameTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffdownload.binTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tffa657int Te6edf3slash Tff7b72= Te6edf3MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3nameTb4b4b4.Te6edf3lastIndexOfTb4b4b4(Ta5d6ff'/'Tb4b4b4)Tb4b4b4, Te6edf3nameTb4b4b4.Te6edf3lastIndexOfTb4b4b4(Ta5d6ff'\\'Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3String Te6edf3base Tff7b72= Te6edf3slash Tff7b72>Tff7b72= T79c0ff0 Tff7b72? Te6edf3nameTb4b4b4.Te6edf3substringTb4b4b4(Te6edf3slash Tff7b72+ T79c0ff1Tb4b4b4) Tb4b4b4: Te6edf3nameTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3baseTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffdownload.binTa5d6ff"Tb4b4b4;
Tb4b4b4}
T8b949e// Hyphen must be first or last in the class so it is literal, not a range (space..hyphen would include '*').
Te6edf3base Tff7b72= Te6edf3baseTb4b4b4.Te6edf3replaceAllTb4b4b4(Ta5d6ff"Ta5d6ff[^A-Za-z0-9._ Ta5d6ff\\Ta5d6ff-]+Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff_Ta5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3baseTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffdownload.binTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3baseTb4b4b4.Te6edf3lengthTb4b4b4(Tb4b4b4) Tff7b72> T79c0ff120Tb4b4b4) Tb4b4b4{
Te6edf3base Tff7b72= Te6edf3baseTb4b4b4.Te6edf3substringTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff120Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3baseTb4b4b4;
Tb4b4b4}
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────